/*
 * Copyright 2011 OpenWAF.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */


package com.openwaf.client.ui.panels;

import com.openwaf.client.dom.DivElement;
import com.openwaf.client.dom.Element;
import com.openwaf.client.ui.UIControl;
import com.openwaf.client.ui.annotation.ViewElement;
import com.openwaf.client.ui.annotation.ViewMethod;
import com.openwaf.client.ui.annotation.ViewProperty;
import java.util.ArrayList;
import java.util.Iterator;

public class StackPanelElement  extends UIControl implements Iterable{
    private ArrayList elements;

    @ViewElement
    private DivElement divTitle;
    @ViewElement
    private DivElement divContent;
    public StackPanelElement(){
        elements=new ArrayList();
    }
    public StackPanelElement(String text){
        this();
        setTitle(text);
    }
    public DivElement getTitleDiv(){
        return divTitle;
    }
    public DivElement getContentDiv(){
        return divContent;
    }
    @Override
    @ViewProperty
    public final void setTitle(String text){
        divTitle.setInnerHTML(text);
    }
    @ViewMethod
    public void setTitle(Element element){
        divTitle.clearChilds();
        divTitle.appendChild(element);
    }
    @Override
    public String getTitle(){
        return divTitle.getInnerHTML();
    }
    @ViewMethod
    public void addElement(UIControl control){
        elements.add(control);
        divContent.appendChild(control.getElement());
    }
    @ViewMethod
    public void addElement(Element element){
        elements.add(element);
        divContent.appendChild(element);
    }
    public Iterator iterator(){
        return elements.iterator();
    }
}
